#include <string>

using namespace std;

int main()
{
    // 错误：不能为 int 重定义内置的运算符
    // int operator+(int, int);

    // 一个非成员运算符函数的等价调用
    // data1 + data2;              // 普通的表达式
    // operator+(data1, data2);    // 等价的函数调用

    // data1 += data2;             // 基于“调用”的表达式
    // data1.operator+=(data2);    // 对成员运算符函数的等价调用

    string s = "world";
    // 正确：我们能把一个 const char* 加到一个 string 对象中
    string t = s + "!"; // s.operator+("!")
    // 如果 + 是 string 的成员，则产生错误
    string u = "hi" + s; // operator+("hi", s)
}